new internal function which destroys the display's event source. Also
authorMichael Natterer <mitch@imendio.com>
Wed, 16 Nov 2005 12:36:22 +0000 (12:36 +0000)
committerMichael Natterer <mitch@src.gnome.org>
Wed, 16 Nov 2005 12:36:22 +0000 (12:36 +0000)
2005-11-16  Michael Natterer  <mitch@imendio.com>

* gdk/x11/gdkevents-x11.c (_gdk_events_uninit): new internal
function which destroys the display's event source. Also removes
the source from the global display_sources list and unrefs it.

* gdk/x11/gdkprivate-x11.h: declare the function.

* gdk/x11/gdkdisplay-x11.c (gdk_display_x11_dispose): call it
instead of half-destroying the source here.

ChangeLog
ChangeLog.pre-2-10
gdk/x11/gdkdisplay-x11.c
gdk/x11/gdkevents-x11.c
gdk/x11/gdkprivate-x11.h

index 0e7ec44b3d0c36517e53fd0f7b675bab1aa5eb08..0566c99a95aa9d21315fbc9fcc56905c3dde2189 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2005-11-16  Michael Natterer  <mitch@imendio.com>
+
+       * gdk/x11/gdkevents-x11.c (_gdk_events_uninit): new internal
+       function which destroys the display's event source. Also removes
+       the source from the global display_sources list and unrefs it.
+
+       * gdk/x11/gdkprivate-x11.h: declare the function.
+
+       * gdk/x11/gdkdisplay-x11.c (gdk_display_x11_dispose): call it
+       instead of half-destroying the source here.
+
 2005-11-15  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktreestore.c (gtk_tree_store_move): Fix a memory
index 0e7ec44b3d0c36517e53fd0f7b675bab1aa5eb08..0566c99a95aa9d21315fbc9fcc56905c3dde2189 100644 (file)
@@ -1,3 +1,14 @@
+2005-11-16  Michael Natterer  <mitch@imendio.com>
+
+       * gdk/x11/gdkevents-x11.c (_gdk_events_uninit): new internal
+       function which destroys the display's event source. Also removes
+       the source from the global display_sources list and unrefs it.
+
+       * gdk/x11/gdkprivate-x11.h: declare the function.
+
+       * gdk/x11/gdkdisplay-x11.c (gdk_display_x11_dispose): call it
+       instead of half-destroying the source here.
+
 2005-11-15  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktreestore.c (gtk_tree_store_move): Fix a memory
index b69d6a211d7692350402d7ce767210ac20c84cf9..62fd4bde411c63a4a3e1913c5c66d002e9799fdf 100644 (file)
@@ -726,11 +726,7 @@ gdk_display_x11_dispose (GObject *object)
   for (i = 0; i < n_screens; i++)
     _gdk_screen_close (display_x11->screens[i]);
 
-  if (display_x11->event_source)
-    {
-      g_source_destroy (display_x11->event_source);
-      display_x11->event_source = NULL;
-    }
+  _gdk_events_uninit (GDK_DISPLAY_OBJECT (object));
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
index 4a06cb0dd624ade3effa0257b7ef3d6f1652c744..42da31f6d72bc13994ce4d127cc52c1a78e1b57b 100644 (file)
@@ -230,6 +230,20 @@ _gdk_events_init (GdkDisplay *display)
                                         NULL);
 }
 
+void
+_gdk_events_uninit (GdkDisplay *display)
+{
+  GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display);
+
+  if (display_x11->event_source)
+    {
+      display_sources = g_list_remove (display_sources,
+                                       display_x11->event_source);
+      g_source_destroy (display_x11->event_source);
+      g_source_unref (display_x11->event_source);
+      display_x11->event_source = NULL;
+    }
+}
 
 /**
  * gdk_events_pending:
index 73f4410c327f04dacaf29b1df569c86430016413..0bd1868a05924c339118e8c2a11571e669f4f26b 100644 (file)
@@ -170,6 +170,7 @@ void _gdk_x11_events_init_screen   (GdkScreen *screen);
 void _gdk_x11_events_uninit_screen (GdkScreen *screen);
 
 void _gdk_events_init           (GdkDisplay *display);
+void _gdk_events_uninit         (GdkDisplay *display);
 void _gdk_windowing_window_init (GdkScreen *screen);
 void _gdk_visual_init           (GdkScreen *screen);
 void _gdk_dnd_init             (GdkDisplay *display);